package com.bgs.travelapp.card.controller;

import com.bgs.travelapp.card.entity.CardEntity;
import com.bgs.travelapp.card.service.CardService;
import com.bgs.travelapp.page.PageRequest;
import com.bgs.travelapp.page.PageResult;
import com.bgs.travelapp.result.CommonResult;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartRequest;
import tk.mybatis.mapper.entity.Example;

import javax.annotation.Resource;

/**
 * 会员卡管理 (后端、前端共用)
 * gpd
 * 2022-07-20 21点10分
 */
@RestController
@CrossOrigin
@RequestMapping("/card")
public class CardController {
    @Resource
    CardService cardService;

    /**
     * 会员卡新增 （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param cardEntity
     * @return
     */
    @PostMapping("/saveCard")
    public CommonResult saveCard(MultipartRequest multipartRequest,CardEntity cardEntity){
        return CommonResult.ok(cardService.saveCard(multipartRequest,cardEntity));
    }

    /**
     * 新增校验方法---查询cardName是否重复（会员卡名称） （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param cardName
     * @return
     */
    @GetMapping("/selectCardName")
    public CommonResult selectCardName(String cardName){
        return CommonResult.ok(cardService.selectCardName(cardName));
    }

    /**
     * 分页查询+模糊查（会员卡名称） （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param pageRequest
     * @param cardName
     * @return
     */
    @GetMapping("/getCardByPage")
    public PageResult getCardByPage(PageRequest pageRequest,String cardName){
        return cardService.getCardByPage(pageRequest,cardName);
    }

    /**
     * 修改会员卡 （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param cardEntity
     * @return
     */
    @PutMapping("/updateCard")
    public CommonResult updateCard(MultipartRequest multipartRequest, CardEntity cardEntity){
        return CommonResult.ok(cardService.updateCard(multipartRequest,cardEntity));
    }

    /**
     * 删除会员卡 （后端--会员卡类型）
     * gpd 2022-08-02 17:09
     * @param id
     * @return
     */
    @DeleteMapping("/deleteCard")
    public CommonResult deleteCard(Integer id){
        return CommonResult.ok(cardService.deleteCard(id));
    }

    /**
     * 查询所有会员卡类型 （前端---会员卡中心）
     * gpd 2022-08-02 17:09
     * @return
     */
    @GetMapping("/getCards")
    public CommonResult getCards(){
        return CommonResult.ok(cardService.getCards());
    }

    /**
     * 查询已选择会员卡类型 （前端---选择会员卡页面）
     * gpd 2022-08-02 17:09
     * @param cardId
     * @return
     */
    @GetMapping("/getCardType")
    public CommonResult getCardType(Integer cardId){
        return CommonResult.ok(cardService.getCardType(cardId));
    }


}
